/*
 *  levelUpGame - Pickup.h
 *  Copyright 2011 W. Reckman. All rights reserved.
 *
 * NOTE: this class does not take ownership of the image
 */
#ifndef PICKUP_H
#define PICKUP_H

#include "ofTypes.h"
#include "GridObject.h"
#include "GameModel.h"

class LevelUpApp;
class ofImage;


class Pickup : public GridObject {
public:
	enum PICKUP_STATE { PST_ACTIVE, PST_DESTROY_ANIM, PST_DESTROYED };
	
	static const float ANIM_SCALE_UP_FACTOR;
	static const float ANIM_DURATION;
	static const float COLLISION_SCALE;
	
	Pickup( const LevelUpApp& appRef_ );
	
	void update();
	void draw() const;
	
	PICKUP_STATE getState() const;
	const ofImage* getImage() const;
	BALANCE_KIND getBalanceType() const;
	
	void setState( PICKUP_STATE state_ );
	void setImage( ofImage* img_ );
	void setBalanceType( BALANCE_KIND type_ );
	
private:
	ofImage* img;
	BALANCE_KIND balanceType;
	
	PICKUP_STATE state;
	float animStartTime;
	float animPos;
};

#endif /* ! PICKUP_H */
